<?php
/**
 * $a->_order = array(
		'username'=>'陈海均',
		'useremail'=>'c.navy@qq.com',
		'orderid'=>'assaerc4242423432',
		'money'=>3,
		'good_title'=>'测试购买包谷米',
		'good_id'=>'',
		'good_desc'=>'',
		'ext1'=>'',
		'ext2'=>''
	);
 * @author seiven
 *
 */
abstract class Helper_Payment_Abstract
{
	/**
	 * 属性值
	 *
	 * @var array
	 */
	protected $_attrs = array();
	function __construct($paytype)
	{
		$this->filename = '_log/'.date('Y-m-d').'.log';
		$payconfig = Q::ini('appini/payconfig/'.$paytype);
		if ($payconfig) {
			$this->_payconfig = $payconfig;
		}else{
			die('pay config error');
		}
	}
	/**
	 * 魔法方法，以便通过指定对象属性的方式来修改元素的属性值
	 *
	 * @param string $attr 属性名
	 * @param mixed $value 属性值
	 */
	function __set($attr, $value)
	{
		$this->_attrs[$attr] = $value;
	}
	/**
	 * 魔法方法，以便通过对象属性直接访问元素的属性值
	 *
	 * @code php
	 * echo $element->title;
	 * @endcode
	 *
	 * @param string $attr
	 *
	 * @return mixed
	 */
	function __get($attr)
	{
		return isset($this->_attrs[$attr]) ? $this->_attrs[$attr] : null;
	}
	/**
	 * 修改属性值
	 *
	 * @param string $attr 属性名
	 * @param mixed $value 属性值
	 *
	 * @return QForm_Element
	 */
	function set($attr, $value)
	{
		$this->_attrs[$attr] = $value;
		return $this;
	}
	/**
	 *
	 * 写日志
	 */
	function log($string)
	{
		if ($string)
		{
			$fp = fopen($this->filename, 'a');
			if ($fp && flock($fp, LOCK_EX))
			{
				fwrite($fp, $string . "\n");
				flock($fp, LOCK_UN);
				fclose($fp);
			}
		}
	}
	/**
	 * 
	 * 组装参数
	 */
	function appendParam($s, $k, $v){
		$joinstring = $s ? '&' : null;
		return $v == '' ? $s : "{$s}{$joinstring}{$k}={$v}";
	}
	/**
	 * 
	 * 生成支付按钮
	 */
	function create_button(){}
	/**
	 * 
	 * 回调参数处理
	 */
	function callback(){}
	/**
	 * 
	 * 获取服务器通知静态返回
	 */
	function get_static_return($status,$param = array())
	{
		return;
	}
}